<html>
<head><meta charset="utf-8"><title>Tracking raw_dylib progress. · t-compiler/windows · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/index.html">t-compiler/windows</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html">Tracking raw_dylib progress.</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="200881455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/200881455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#200881455">(Jun 15 2020 at 12:23)</a>:</h4>
<p>The most recent PR is <a href="https://github.com/rust-lang/rust/pull/71497">https://github.com/rust-lang/rust/pull/71497</a> , which seems has stalled a bit.</p>



<a name="203573760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/203573760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tinaun <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#203573760">(Jul 11 2020 at 01:20)</a>:</h4>
<p>i'm coming back to this - don't worry. i do want to talk to somebody more experienced in llvm + compiler internals to figure out what im doing wrong in llvm to trigger all these assertion failures</p>



<a name="206362650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/206362650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#206362650">(Aug 08 2020 at 20:20)</a>:</h4>
<p><span class="user-mention" data-user-id="119491">@tinaun</span>  <a class="stream" data-stream-id="187780" href="/#narrow/stream/187780-t-compiler.2Fwg-llvm">#t-compiler/wg-llvm</a> maybe a good place to ask for help</p>



<a name="206877877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/206877877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#206877877">(Aug 13 2020 at 22:11)</a>:</h4>
<p><span class="user-mention" data-user-id="119491">@tinaun</span>  Was the code in the PR the latest? I can try to help debug the LLVM assertions.</p>



<a name="207003122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207003122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tinaun <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207003122">(Aug 15 2020 at 03:35)</a>:</h4>
<p><span class="user-mention" data-user-id="132778">@Luqman Aden</span>  yeah - theres still some obvious bugs (like not all pointers being in 32-bit rva form where needed, but its up to date with the pr)</p>



<a name="207003221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207003221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tinaun <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207003221">(Aug 15 2020 at 03:38)</a>:</h4>
<p><a href="https://gist.github.com/tinaun/743c56dcd1722d301e10788fff2e4d0d">https://gist.github.com/tinaun/743c56dcd1722d301e10788fff2e4d0d</a> here's a gist showing the module i generate for the idata sections (this is a separate module from the rest of the compilation)</p>



<a name="207016126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207016126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207016126">(Aug 15 2020 at 10:43)</a>:</h4>
<p>Hey all. I've basically no experience with LLVM, but I'd love to help with this. Let me know if/how I can jump in</p>



<a name="207109507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207109507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207109507">(Aug 17 2020 at 06:04)</a>:</h4>
<p>So one thing that wasn't clarified on the RFC or tracking issue is that I'm pretty sure emitting just .idata* sections isn't enough. Those names are just conventions and you can have an exe with imports but no idata sections.</p>



<a name="207109587"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207109587" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207109587">(Aug 17 2020 at 06:06)</a>:</h4>
<p>The PE loader relies on finding the import table from an optional "data directory" in the file's header.</p>



<a name="207109733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207109733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207109733">(Aug 17 2020 at 06:10)</a>:</h4>
<p><a href="https://docs.microsoft.com/en-us/windows/win32/debug/pe-format?redirectedfrom=MSDN#optional-header-data-directories-image-only">https://docs.microsoft.com/en-us/windows/win32/debug/pe-format?redirectedfrom=MSDN#optional-header-data-directories-image-only</a><br>
Offset 104/120 (PE/PE32+) should be the RVA (relative virtual address) to the image import descriptor and its size</p>



<a name="207109790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207109790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207109790">(Aug 17 2020 at 06:10)</a>:</h4>
<p>Also, that page clarifies that the section name is more just convention:</p>
<blockquote>
<p>Also, do not assume that the RVAs in this table point to the beginning of a section or that the sections that contain specific tables have specific names.</p>
</blockquote>



<a name="207110060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207110060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207110060">(Aug 17 2020 at 06:17)</a>:</h4>
<p>AFAIK rustc doesn't deal with creating the final image (instead just emitting objects later passed to the linker) and so manipulating those headers isn't as straightforward.</p>



<a name="207110085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207110085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207110085">(Aug 17 2020 at 06:17)</a>:</h4>
<p>What we could do instead though is create a coff import obj i.e. essentially create the import lib ourselves</p>



<a name="207110134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207110134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207110134">(Aug 17 2020 at 06:18)</a>:</h4>
<p>To that end, this seems promising: writeImportLibrary - <a href="https://github.com/llvm/llvm-project/blob/master/llvm/lib/Object/COFFImportFile.cpp#L571">https://github.com/llvm/llvm-project/blob/master/llvm/lib/Object/COFFImportFile.cpp#L571</a></p>



<a name="207110219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207110219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207110219">(Aug 17 2020 at 06:20)</a>:</h4>
<p>So the rough process would be collect together imports specified via the raw-dylib attribute kind and generate import libs along with the normal object files, and pass them to the linker.</p>



<a name="207110374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207110374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207110374">(Aug 17 2020 at 06:24)</a>:</h4>
<p>Oh, I guess __imp_ stubs might still need to be generated. Though, I can't remember where right now but I could've sworn I read somewhere the linker might actually just be able to synthesize those. But that relies on linker support (both link.exe and lld) and uh, citation needed :P</p>



<a name="207116518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207116518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207116518">(Aug 17 2020 at 08:04)</a>:</h4>
<p>Ok, reading more I'm inclined to say we don't need to generate a stub here. We already mark dylib extern symbols with the dllimport attribute which makes llvm instead use an indirect call via __imp_foo. Once we generate the import lib, it should contain such a symbol that will point to the the Import Address Table (IAT) that gets filled with the real address at runtime by the PE loader. A stub is only necessary for the non-dllimport case and in fact I think the linker handles that case anyways.</p>



<a name="207210634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207210634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tinaun <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207210634">(Aug 17 2020 at 23:58)</a>:</h4>
<p>that makes sense - i wanted to generate the lib files directly at first, but <span class="user-mention" data-user-id="125267">@Peter Rabbit</span> said that i should try to find a different way to not have to depend on link.exe, but if lld supports them it doesn't really matter - its a lot simpler this way </p>
<p>a older version of the pr had the __imp_ stubs being generated, but they stopped being generated somewhere along the line (i think a privacy change?)</p>



<a name="207210963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207210963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Peter Rabbit <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207210963">(Aug 18 2020 at 00:03)</a>:</h4>
<p><span class="user-mention silent" data-user-id="132778">Luqman Aden</span> <a href="#narrow/stream/242869-t-compiler.2Fwindows/topic/Tracking.20raw_dylib.20progress.2E/near/207110085">said</a>:</p>
<blockquote>
<p>What we could do instead though is create a coff import obj i.e. essentially create the import lib ourselves</p>
</blockquote>
<p>The whole point of raw-dylib is that we are effectively emitting our own import library instead of relying on external import libraries. It's purely an implementation detail of whether it is a separate <code>.lib</code> import library or included directly inside the rlib.</p>



<a name="207211145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207211145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Peter Rabbit <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207211145">(Aug 18 2020 at 00:06)</a>:</h4>
<p>In an import library <code>__imp_foo</code> is a static containing the address of the dynamically loaded foo whose value is updated during the relocation process at runtime, while <code>foo</code> is a stub function which does nothing more than <code>jmp __imp_foo</code>. The former is used directly by code when <code>dllimport</code> was used, while the latter exists for compatibility with code that forgot to use <code>dllimport</code>.</p>



<a name="207211912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207211912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207211912">(Aug 18 2020 at 00:20)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125267">Peter Rabbit</span> <a href="#narrow/stream/242869-t-compiler.2Fwindows/topic/Tracking.20raw_dylib.20progress.2E/near/207210963">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="132778">Luqman Aden</span> <a href="#narrow/stream/242869-t-compiler.2Fwindows/topic/Tracking.20raw_dylib.20progress.2E/near/207110085">said</a>:</p>
<blockquote>
<p>What we could do instead though is create a coff import obj i.e. essentially create the import lib ourselves</p>
</blockquote>
<p>The whole point of raw-dylib is that we are effectively emitting our own import library instead of relying on external import libraries. It's purely an implementation detail of whether it is a separate <code>.lib</code> import library or included directly inside the rlib.</p>
</blockquote>
<p>Sure, yea it was more a comment on implementation.</p>



<a name="207218932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/207218932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tinaun <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#207218932">(Aug 18 2020 at 02:54)</a>:</h4>
<p>i got a bors notification saying that my pr finally broke, so im going to try to redo it and generate a lib instead of a llvm module (most of the pr remains pretty much the same though)</p>



<a name="210650151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/210650151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> est31 <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#210650151">(Sep 20 2020 at 05:17)</a>:</h4>
<p><span class="user-mention silent" data-user-id="132778">Luqman Aden</span> <a href="#narrow/stream/242869-t-compiler.2Fwindows/topic/Tracking.20raw_dylib.20progress.2E/near/207109587">said</a>:</p>
<blockquote>
<p>The PE loader relies on finding the import table from an optional "data directory" in the file's header.</p>
</blockquote>
<p>Isn't this directory built by the linker? From the document you linked:</p>
<blockquote>
<p>Every image file has an optional header that provides information to the loader. This header is optional in the sense that some files (specifically, object files) do not have it. For image files, this header is required. An object file can have an optional header, but generally this header has no function in an object file except to increase its size.</p>
</blockquote>



<a name="210693128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/210693128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#210693128">(Sep 21 2020 at 00:41)</a>:</h4>
<p>Sure, reading back I think my point there was that just emitting sections named .idata$n by itself wouldn't actually work.</p>



<a name="211003178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/211003178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> est31 <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#211003178">(Sep 23 2020 at 13:35)</a>:</h4>
<p><span class="user-mention" data-user-id="132778">@Luqman Aden</span> what else would be needed beyond those idata sections? rustc does not emit an exe file itself, it's created by the linker.</p>



<a name="211401598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/211401598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tinaun <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#211401598">(Sep 27 2020 at 06:34)</a>:</h4>
<p>you would need to generate a .lib file following the specifications in here - <a href="https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#archive-library-file-format">https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#archive-library-file-format</a> (the "short import" format specifically) and then pass it to the linker</p>



<a name="215523898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/215523898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Arlie Davis <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#215523898">(Nov 03 2020 at 23:26)</a>:</h4>
<p>Hey, folks. I'm interested in contributing to this work. Is anyone still actively working on this?  If not, should I pick up @tinaun's PR and continue work on it?</p>



<a name="215534678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/215534678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tinaun <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#215534678">(Nov 04 2020 at 02:23)</a>:</h4>
<p>Hey I’d still like to work on this pr, but could use some help.</p>
<p>I’d love to talk more tomorrow</p>



<a name="215583498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/215583498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#215583498">(Nov 04 2020 at 14:00)</a>:</h4>
<p>I believe <span class="user-mention" data-user-id="132778">@Luqman Aden</span> was also helping out.</p>



<a name="215606404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/215606404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Luqman Aden <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#215606404">(Nov 04 2020 at 16:32)</a>:</h4>
<p>I mostly just quoted docs about how the feature should work and offered help with any LLVM issues</p>



<a name="217523022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/217523022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Clemens Wasser <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#217523022">(Nov 21 2020 at 22:48)</a>:</h4>
<p><span class="user-mention" data-user-id="119491">@tinaun</span> What is the current status of your Draft PR? I would love to help, but have neither experience with LLVM nor with the low-level details of linking on Windows.</p>



<a name="217530805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/217530805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tinaun <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#217530805">(Nov 22 2020 at 02:50)</a>:</h4>
<p>my pr is out of date and really old (from before the great std/librustc_* -&gt; compiler/rustc_* migration), i reapplied my commits on a new branch and am working on a version that generates .lib files to give to the linker instead of going through llvm (see the comments above) - i have the lib generation done but i haven't threaded it through the backend to actually write the files anywhere - im probably just gonna hard code some stuff and test if it works manually first</p>



<a name="217939298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/242869-t-compiler/windows/topic/Tracking%20raw_dylib%20progress./near/217939298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Arlie Davis <a href="https://rust-lang.github.io/zulip_archive/stream/242869-t-compiler/windows/topic/Tracking.20raw_dylib.20progress.2E.html#217939298">(Nov 25 2020 at 21:05)</a>:</h4>
<p>Hey @tinaun, how is this coming? I was thinking of picking this work up, myself.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>